'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Users', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      username: {
        type: Sequelize.STRING(20),
        allowNull: false
      },
      password: {
        type: Sequelize.CHAR(32),
        allowNull: false
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    }, {
      // 对数据库的其他设置
      tableName: 'users', // 真实表名
      charset: 'utf8mb4', // 字符集
      collate: 'utf8mb4_bin' // 校对方式
    }).then(() => {
      // 创建 Users 表后
      // 给 username 字段添加名称为 username 的索引
      // 让该索引为唯一
      return queryInterface.addIndex('users', {
        name: 'username',
        unique: true, // 该索引为唯一，不允许有相同用户名用户
        fields: ['username']
      });
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Users');
  }
};